package com.ittao.taoaicodemother.manage.storage.lifecycle.observer;

import lombok.Builder;
import lombok.Data;
import java.time.LocalDateTime;

/**
 * 会话活动事件
 * 用于通知观察者会话的活动状态变化
 */
@Data
@Builder
public class SessionActivityEvent {
    
    /**
     * 会话ID
     */
    private String sessionId;
    
    /**
     * 用户ID
     */
    private String userId;
    
    /**
     * 应用ID
     */
    private String appId;
    
    /**
     * 事件类型
     */
    private ActivityType activityType;
    
    /**
     * 事件发生时间
     */
    private LocalDateTime eventTime;
    
    /**
     * 临时文件路径（可选）
     */
    private String tempFilePath;
    
    /**
     * 活动类型枚举
     */
    public enum ActivityType {
        /**
         * 项目生成开始
         */
        PROJECT_GENERATION_START,
        
        /**
         * 项目生成完成
         */
        PROJECT_GENERATION_COMPLETE,
        
        /**
         * 用户对话活动
         */
        USER_CONVERSATION,
        
        /**
         * 项目修改
         */
        PROJECT_MODIFICATION,
        
        /**
         * 会话结束
         */
        SESSION_END,
        
        /**
         * 手动清理
         */
        MANUAL_CLEANUP
    }
}